﻿using System;
using System.Windows.Forms;
using EntitiesAndMappings.Entities;
using ProyectoActivos.Daos;
using ProyectoActivos.Util;
using ProyectoActivos.Validate;

namespace ProyectoActivos.Forms.Consultas
{
    public partial class FrmConsultaProveedores : Form, IValidateForm
    {

        public static FrmConsultaProveedores Activo { set; get; }
        private Boolean _valido;
        private ProveedorDAO proveedorDAO;

        public FrmConsultaProveedores()
        {
            InitializeComponent();
            this._valido = true;
            dGridResultado.AutoGenerateColumns = false;
            proveedorDAO = new ProveedorDAO();
            Activo = this;
        }

        public void Invalid()
        {
            _valido = false;
        }

        public Boolean IsValid()
        {
            return _valido;
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            _valido = true;
            errorProvider.Clear();

            ActionExecutor.Execute(this, delegate
            {

                var resultado = proveedorDAO.Buscar(new Proveedor
                {
                    Ruc = txtRuc.Text,
                    RazonSocial = txtRazonSocial.Text
                });
                dGridResultado.DataSource = resultado;
            });
        }

        private void FrmConsultaProveedores_FormClosing(object sender, FormClosingEventArgs e)
        {
            Activo = null;
        }

        private void tStripButtonExportarAExcel_Click(object sender, EventArgs e)
        {
            if (dGridResultado.Rows.Count > 0)
            {
                ActionExecutor.Execute(this, delegate
                {
                    ExcelUtils.ExportarGridAExcel(dGridResultado);
                });
            }
        }
    }
}
